#pragma once

#include "../api_config.h"
#include <stdint.h>



#ifdef WINDOWS_DEV

#include <pthread.h>
#include <windows.h>


typedef void* (*thread_func_t)(void*);

class System
{
private:

public:
  System(/* args */);
  ~System();
  // TaskFunction_t pvTaskCode,
  //   const char* const pcName,
  //   const configSTACK_DEPTH_TYPE uxStackDepth,
  //   void* pvParameters,
  //   UBaseType_t uxPriority,
  //   TaskHandle_t* pxCreatedTask
    // bool thread_create(const char* name, void* (*func)(void*), void* arg);

  typedef pthread_t thread_id_t;

  void delay(uint32_t ms);


  bool thread_create(void (*thread_func_t)(void*), const char* name, uint8_t stack_depth, void* arg, uint32_t priority, System::thread_id_t* thread_id);




};



#endif



extern System sys;
